"""
Memory components for continual learning
"""

from learners.components.__further__.memory import (
    MemoryManager,
    ExemplarSelector,
    HerdingExemplarSelector,
    MemoryStrategy,
    FixedMemoryStrategy,
    DynamicMemoryStrategy,
    ClassMeanManager,
    StandardClassMeanManager,
)

from learners.components.__further__.episodic_memory import EpisodicMemory
from learners.components.__further__.memory_integration import (
    MemoryIntegration,
    refactor_learner_memory,
)

__all__ = [
    # Abstract interfaces
    "MemoryManager",
    "ExemplarSelector",
    "MemoryStrategy",
    "ClassMeanManager",
    # Concrete implementations
    "HerdingExemplarSelector",
    "FixedMemoryStrategy",
    "DynamicMemoryStrategy",
    "StandardClassMeanManager",
    "EpisodicMemory",
    # Integration helpers
    "MemoryIntegration",
    "refactor_learner_memory",
]
